#ifndef __DO_RMAHDR_
#define __DO_RMAHDR_

#ifdef __cplusplus
  extern "C" {
#endif

#define VCS_RTLIB_TLS_MODEL  __attribute__((tls_model("initial-exec")))

typedef unsigned long UP;
typedef unsigned U;
typedef unsigned char UB;
typedef unsigned char scalar;
typedef struct vec32 vec32;
typedef unsigned short US;
typedef unsigned char SVAL;
typedef unsigned char TYPEB;
typedef struct qird QIRD;
typedef unsigned char UST_e;
typedef unsigned uscope_t;
typedef U  NumLibs_t;
struct vec32 {
    U  I1;
    U  I2;
};
typedef unsigned long RP;
typedef unsigned long RO;
typedef unsigned long long ULL;
typedef U  GateCount;
typedef U  NodeCount;
typedef unsigned short HsimEdge;
typedef unsigned char HsimExprChar;
typedef struct {
    U  I706;
    RP  I707;
} RmaReceiveClock1;
typedef NodeCount  FlatNodeNum;
typedef U  InstNum;
typedef unsigned ProcessNum;
typedef unsigned long long TimeStamp64;
typedef unsigned long long TimeStamp;
typedef enum {
    PD_SING = 0,
    PD_RF = 1,
    PD_PLSE = 2,
    PD_PLSE_RF = 3,
    PD_NULL = 4
} PD_e;
typedef TimeStamp  RmaTimeStamp;
typedef TimeStamp64  RmaTimeStamp64;
typedef struct {
    int * I708;
    int * I709;
    int I710;
    union {
        long long enumDesc;
        long long classId;
    } I711;
} TypeData;
struct etype {
    U  I586 :8;
    U  I587;
    U  I588;
    U  I589 :1;
    U  I590 :1;
    U  I591 :1;
    U  I592 :1;
    U  I593 :1;
    U  I594 :1;
    U  I595 :1;
    U  I596 :1;
    U  I597 :1;
    U  I598 :4;
    U  I599 :1;
    U  I600 :1;
    U  I601 :1;
    U  I602 :1;
    U  I603 :1;
    U  I604 :1;
    U  I605 :1;
    U  I606 :1;
    U  I607 :2;
    U  I608 :1;
    U  I609 :2;
    U  I610 :1;
    U  I611 :1;
    U  I612 :1;
    U  I613 :1;
    U  I614 :1;
    U  I615 :1;
    TypeData  * I616;
    U  I617;
    U  I618;
    U  I619 :1;
    U  I620 :1;
    U  I621 :1;
    U  I622 :1;
    U  I623 :2;
    U  I624 :2;
    U  I625 :1;
    U  I626 :1;
    U  I627 :1;
    U  I628 :1;
    U  I629 :1;
    U  I630 :1;
    U  I631 :1;
    U  I632 :1;
    U  I633 :1;
    U  I634 :1;
    U  I635 :1;
    U  I636 :13;
};
typedef union {
    double I718;
    unsigned long long I719;
    unsigned  I720[2];
} rma_clock_struct;
typedef struct eblk EBLK;
typedef int (* E_fn)(void);
typedef struct eblk {
    struct eblk * I727;
    E_fn  I728;
    struct iptmpl * I729;
    unsigned I731;
    unsigned I732;
    struct eblk * I733;
} eblk_struct;
typedef struct {
    RP  I727;
    RP  I728;
    RP  I729;
    unsigned I731;
    unsigned I732;
    RP  I733;
} RmaEblk;
typedef struct {
    RP  I727;
    RP  I728;
    RP  I729;
    unsigned I731;
    unsigned I732;
    RP  I733;
    unsigned val;
} RmaEblklq;
typedef union {
    double I718;
    unsigned long long I719;
    unsigned  I720[2];
} clock_struct;
typedef clock_struct  RmaClockStruct;
typedef struct RmaRetain_t RmaRetain;
struct RmaRetain_t {
    RP  I769;
    RmaEblk  I726;
    U  I771;
    US  I772 :1;
    US  I773 :4;
    US  I181 :2;
    US  state :2;
    US  I775 :1;
    US  I776 :2;
    US  I777 :2;
    US  fHsim :1;
    US  I569 :1;
    scalar  newval;
    scalar  I780;
    RP  I781;
};
struct retain_t {
    struct retain_t * I769;
    EBLK  I726;
    U  I771;
    US  I772 :1;
    US  I773 :4;
    US  I181 :2;
    US  state :2;
    US  I775 :1;
    US  I776 :2;
    US  I777 :2;
    US  fHsim :1;
    US  I778 :1;
    scalar  newval;
    scalar  I780;
    void * I781;
};
typedef struct MPSched MPS;
typedef struct RmaMPSched RmaMps;
struct MPSched {
    MPS  * I760;
    scalar  I761;
    scalar  I762;
    scalar  I763;
    scalar  fHsim :1;
    scalar  I181 :6;
    U  I765;
    EBLK  I766;
    void * I767;
    UP   I768[1];
};
struct RmaMPSched {
    RP  I760;
    scalar  I761;
    scalar  I762;
    scalar  I763;
    scalar  fHsim :1;
    scalar  I181 :6;
    U  I765;
    RmaEblk  I766;
    RP  I767;
    RP   I768[1];
};
typedef struct RmaMPSchedPulse RmaMpsp;
struct RmaMPSchedPulse {
    RP  I760;
    scalar  I761;
    scalar  I762;
    scalar  I763;
    scalar  I181;
    U  I765;
    RmaEblk  I766;
    scalar  I777;
    scalar  I786;
    scalar  I787;
    scalar  I788;
    U  I789;
    RmaClockStruct  I790;
    RmaClockStruct  I791;
    U  state;
    U  I792;
    RP  I729;
    RP  I793;
    RP  I794;
    RP   I768[1];
};
typedef struct MPItem MPI;
struct MPItem {
    U  * I796;
    void * I797;
};
typedef struct {
    RmaEblk  I726;
    RP  I798;
    scalar  I799;
    scalar  I777;
    scalar  I800;
} RmaTransEventHdr;
typedef struct RmaMPSchedPulseNewCsdf RmaMpspNewCsdf;
struct RmaMPSchedPulseNewCsdf {
    RP  I760;
    scalar  I761;
    scalar  I762;
    scalar  I763;
    scalar  fHsim :1;
    scalar  I181 :6;
    U  I765;
    RmaEblk  I766;
    scalar  I777;
    scalar  I786;
    scalar  I787;
    scalar  I788;
    U  state :4;
    U  I802 :28;
    RmaClockStruct  I790;
    RmaClockStruct  I791;
    RP  I803;
    RP  I729;
    RP  I804;
    RP   I768[1];
};
typedef struct red_t {
    U  I805;
    U  I806;
    U  I685;
} RED;
typedef struct predd {
    PD_e  I181;
    RED   I807[0];
} PREDD;
union rhs_value {
    vec32  I808;
    scalar  I799;
    vec32  * I777;
    double I809;
    U  I810;
};
typedef struct nbs_t {
    struct nbs_t * I811;
    struct nbs_t * I813;
    void (* I814)(struct nbs_t * I781);
    U  I815 :1;
    U  I816 :1;
    U  I817 :1;
    U  I818 :1;
    U  I819 :1;
    U  I820 :1;
    U  I821 :26;
    U  I822;
    void * I823;
    union rhs_value I824;
    vec32  I718;
    union {
        struct nbs_t * first;
        struct nbs_t * last;
    } I826;
} NBS;
typedef struct {
    RP  I827;
    RP  I793;
    RP  I729;
    RP  I794;
    RmaEblk  I726;
    RmaEblk  I828;
    RP  I829;
    scalar  I799;
    scalar  I777;
    char state;
    uscope_t  I830;
    U  I831;
    RP  I832;
    scalar  I786;
    scalar  I787;
    scalar  I788;
    RmaClockStruct  I790;
    RmaClockStruct  I791;
    RP  I767;
} RmaPulse;
typedef enum {
    QIRDModuleC = 1,
    QIRDSVPackageC = 2,
    QIRDSpiceModuleC = 3
} QIRDModuleType;
typedef struct {
    U  I836 :1;
    U  I837 :1;
    U  I838 :1;
    U  I839 :1;
    U  I840 :1;
    U  I841 :1;
    U  I842 :1;
    U  I843 :1;
    U  I844 :1;
    U  I845 :1;
    U  I846 :1;
    U  I847 :1;
    U  I848 :1;
    U  I849 :1;
    U  I850 :1;
    U  I851 :1;
    U  I852 :1;
    U  I853 :1;
    QIRDModuleType  I854 :2;
    U  I855 :1;
    U  I856 :1;
    U  I857 :1;
    U  I858 :1;
    U  I859 :1;
    U  I860 :1;
    U  I861 :1;
    U  I862 :1;
    U  I863 :1;
    U  I864 :1;
    U  I865 :1;
    U  I866 :1;
    U  I867 :1;
    U  I868 :1;
    U  I869 :1;
    U  I870 :1;
    U  I871 :1;
    U  I872 :1;
    U  I873 :1;
    U  I874 :1;
} BitFlags;
struct qird {
    US  I4;
    US  I5;
    U  I6;
    U  I7;
    char * I8;
    char * I9;
    U  * I10;
    char * I11;
    char * I12;
    U  I13;
    U  I14;
    struct vcd_rt * I15;
    U  I17;
    struct _vcdOffset_rt * I18;
    U  I20;
    U  I21;
    U  * I22;
    U  * I23;
    void * I24;
    void * I25;
    U  I26;
    int I27;
    UP  I28;
    U  I29;
    U  I30;
    U  I31;
    UP  I32;
    U  * I33;
    UP  I34;
    U  I35;
    BitFlags  I36;
    U  I37;
    U  I38;
    U  I39;
    U  I40;
    U  I41;
    U  * I42;
    U  I43;
    U  * I44;
    U  I45;
    U  I46;
    U  I47;
    U  I48;
    U  I49;
    U  I50;
    U  I51;
    U  * I52;
    U  * I53;
    U  I54;
    U  I55;
    U  * I56;
    U  I57;
    U  * I58;
    U  I59;
    U  I60;
    U  I61;
    U  I62;
    U  * I63;
    U  I64;
    U  * I65;
    U  I66;
    U  I67;
    U  I68;
    U  I69;
    U  I70;
    U  I71;
    U  * I72;
    char * I73;
    U  I74;
    U  I75;
    U  I76;
    U  I77;
    U  I78;
    U  * I79;
    U  I80;
    U  I81;
    U  I82;
    UP  * I83;
    U  I84;
    U  I85;
    U  I86;
    U  I87;
    U  I88;
    U  I89;
    U  * I90;
    U  I91;
    U  I92;
    U  * I93;
    U  * I94;
    U  * I95;
    U  * I96;
    U  * I97;
    U  I98;
    U  I99;
    struct taskInfo * I100;
    U  I102;
    U  I103;
    U  I104;
    int * I105;
    U  * I106;
    UP  * I107;
    U  * I108;
    U  I109;
    U  I110;
    U  I111;
    U  I112;
    U  I113;
    struct qrefer * I114;
    U  * I116;
    unsigned * I117;
    void * I118;
    U  I119;
    U  I120;
    struct classStaticReferData * I121;
    U  I123;
    U  * I124;
    U  I125;
    U  * I126;
    U  I127;
    struct wakeupInfoStruct * I128;
    U  I130;
    U  I131;
    U  I132;
    U  * I133;
    U  I134;
    U  * I135;
    U  I136;
    U  I137;
    U  I138;
    U  * I139;
    U  I140;
    U  * I141;
    U  I142;
    U  I143;
    U  * I144;
    U  I145;
    U  I146;
    U  * I147;
    U  * I148;
    U  * I149;
    U  I150;
    U  I151;
    U  I152;
    U  I153;
    U  I154;
    struct qrefee * I155;
    U  * I157;
    U  I158;
    struct qdefrefee * I159;
    U  * I161;
    int (* I162)(void);
    char * I163;
    U  I164;
    U  I165;
    void * I166;
    void * I167;
    NumLibs_t  I168;
    char * I169;
    U  * I170;
    U  I171;
    U  I172;
    U  I173;
    U  I174;
    U  I175;
    U  * I176;
    U  * I177;
    int I178;
    struct clock_load * I179;
    int I194;
    struct clock_data * I195;
    int I211;
    struct clock_hiconn * I212;
    U  I216;
    U  I217;
    U  I218;
    U  I219;
    U  * I220;
    U  * I221;
    U  I222;
    void * I223;
    U  I224;
    U  I225;
    UP  * I226;
    void * I227;
    U  I228;
    UP  * I229;
    U  * I230;
    int (* I231)(void);
    U  * I232;
    UP  * I233;
    U  * I234;
    U  I235 :1;
    U  I236 :31;
    U  I237;
    U  I238;
    UP  * I239;
    U  * I240;
    U  I241 :1;
    U  I242 :1;
    U  I243 :1;
    U  I244 :1;
    U  I245 :28;
    U  I246;
    U  I247;
    U  I248;
    U  I249 :31;
    U  I250 :1;
    UP  * I251;
    UP  * I252;
    U  * I253;
    U  * I254;
    U  * I255;
    U  * I256;
    UP  * I257;
    UP  * I258;
    UP  * I259;
    U  * I260;
    UP  * I261;
    UP  * I262;
    UP  * I263;
    UP  * I264;
    char * I265;
    U  I266;
    U  I267;
    U  I268;
    UP  * I269;
    U  I270;
    UP  * I271;
    UP  * I272;
    UP  * I273;
    UP  * I274;
    UP  * I275;
    UP  * I276;
    UP  * I277;
    UP  * I278;
    UP  * I279;
    UP  * I280;
    UP  * I281;
    UP  * I282;
    UP  * I283;
    UP  * I284;
    U  * I285;
    U  * I286;
    UP  * I287;
    U  I288;
    U  I289;
    U  I290;
    U  I291;
    U  I292;
    U  I293;
    U  I294;
    U  I295;
    char * I296;
    U  * I297;
    U  I298;
    U  I299;
    U  I300;
    U  I301;
    U  I302;
    UP  * I303;
    UP  * I304;
    UP  * I305;
    UP  * I306;
    struct daidirInfo * I307;
    struct vcs_tftable * I309;
    U  I311;
    UP  * I312;
    UP  * I313;
    U  I314;
    U  I315;
    U  I316;
    UP  * I317;
    U  * I318;
    UP  * I319;
    UP  * I320;
    struct qird_hil_data * I321;
    UP  (* I323)(void);
    UP  (* I324)(void);
    UP  (* I325)(void);
    UP  (* I326)(void);
    UP  (* I327)(void);
    int * I328;
    int (* I329)(void);
    char * I330;
    UP  * I331;
    UP  * I332;
    UP  (* I333)(void);
    int (* I334)(void);
    int * I335;
    int (* I336)(void);
    int * I337;
    char * I338;
    U  * I339;
    U  * I340;
    U  * I341;
    U  * I342;
    void * I343;
    U  I344;
    void * I345;
    U  I346;
    U  I347;
    U  I348;
    U  I349;
    U  I350;
    U  I351;
    char * I352;
    UP  * I353;
    U  * I354;
    U  * I355;
    U  I356 :15;
    U  I357 :14;
    U  I358 :1;
    U  I359 :1;
    U  I360 :1;
    U  I361 :3;
    U  I362 :1;
    U  I363 :1;
    U  I364 :17;
    U  I365 :3;
    U  I366 :5;
    U  I367 :1;
    U  I368 :1;
    U  I369;
    U  I370;
    struct scope * I371;
    U  I373;
    U  I374;
    U  I375;
    U  * I376;
    U  * I377;
    U  * I378;
    U  I379;
    U  I380;
    U  I381;
    struct pcbt * I382;
    U  I392;
    U  I393;
    U  I394;
    U  I395;
    void * I396;
    void * I397;
    void * I398;
    int I399;
    U  * I400;
    U  I401;
    U  I402;
    U  I403;
    U  I404;
    U  I405;
    U  I406;
    U  I407;
    void * I408;
    UP  * I409;
    U  I410;
    U  I411;
    void * I412;
    U  I413;
    void * I414;
    U  I415;
    void * I416;
    U  I417;
    int (* I418)(void);
    int (* I419)(void);
    void * I420;
    void * I421;
    void * I422;
    U  I423;
    U  I424;
    U  I425;
    U  I426;
    U  I427;
    U  I428;
    char * I429;
    U  I430;
    U  * I431;
    U  I432;
    U  * I433;
    U  I434;
    U  I435;
    U  I436;
    U  I437;
    U  I438;
    U  I439;
    U  * I440;
    U  I441;
    U  I442;
    U  * I443;
    U  I444;
    U  I445;
    U  I446;
    U  * I447;
    char * I448;
    U  I449;
    U  I450;
    U  I451;
    U  I452;
    U  * I453;
    U  * I454;
    U  I455;
    U  * I456;
    U  * I457;
    U  I458;
    U  I459;
    U  I460;
    UP  * I461;
    U  I462;
    U  I463;
    U  I464;
    struct cosim_info * I465;
    U  I467;
    U  * I468;
    U  I469;
    void * I470;
    U  I471;
    U  * I472;
    U  I473;
    struct hybridSimReferrerData * I474;
    U  I476;
    U  * I477;
    U  I478;
    U  I479;
    U  * I480;
    U  I481;
    U  * I482;
    U  I483;
    U  * I484;
    U  I485;
    U  I486;
    U  I487;
    U  I488;
    U  I489;
    U  I490;
    U  I491;
    U  I492;
    U  I493;
    U  * I494;
    U  * I495;
    void (* I496)(void);
    U  * I497;
    UP  * I498;
    struct mhdl_outInfo * I499;
    UP  * I501;
    U  I502;
    UP  * I503;
    U  I504;
    void * I505;
    U  * I506;
    void * I507;
    char * I508;
    int (* I509)(void);
    U  * I510;
    char * I511;
    char * I512;
    U  I513;
    U  * I514;
    char * I515;
    U  I516;
    struct regInitInfo * I517;
    UP  * I519;
    U  * I520;
    char * I521;
    U  I522;
    U  I523;
    U  I524;
    U  I525;
    U  I526;
    U  I527;
    U  I528;
    U  I529;
    UP  * I530;
    U  I531;
    U  I532;
    U  I533;
    U  I534;
    UP  * I535;
    U  I536;
    UP  * I537;
    U  I538;
    U  I539;
    U  I540;
    U  * I541;
    U  I542;
    U  I543;
    U  I544;
    U  * I545;
    U  * I546;
    UP  * I547;
    UP  * I548;
    void * I549;
    UP  I550;
    void * I551;
    void * I552;
    void * I553;
    void * I554;
    void * I555;
    UP  I556;
    U  * I557;
    U  * I558;
    void * I559;
    U  I560 :1;
    U  I561 :31;
    U  I562;
    U  I563;
    U  I564;
    int I565;
    U  I566 :1;
    U  I567 :1;
    U  I568 :1;
    U  I569 :29;
    void * I570;
    void * I571;
    void * I572;
    void * I573;
    void * I574;
    UP  * I575;
    U  * I576;
    U  I577;
    char * I578;
    U  * I579;
    U  * I580;
    char * I581;
    int * I582;
    UP  * I583;
    struct etype * I584;
    U  I637;
    U  I638;
    U  * I639;
    struct etype * I640;
    U  I641;
    U  I642;
    U  I643;
    U  * I644;
    void * I645;
    U  I646;
    U  I647;
    void * I648;
    U  I649;
    U  I650;
    U  * I651;
    U  * I652;
    char * I653;
    U  I654;
    struct covreg_rt * I655;
    U  I657;
    U  I658;
    U  * I659;
    U  I660;
    U  * I661;
    U  I662;
    U  I663;
    U  * I664;
};
typedef struct pcbt {
    U  * I384;
    UP  I385;
    U  I386;
    U  I387;
    U  I388;
    U  I389;
    U  I390;
    U  I391;
} PCBT;
struct iptmpl {
    QIRD  * I734;
    struct vcs_globals_t * I735;
    void * I737;
    UP  I738;
    UP  I739;
    struct iptmpl * I729[2];
};
typedef unsigned long long FileOffset;
typedef struct _RmaMultiInputTable {
    U  I881 :1;
    U  I882 :1;
    U  I672 :2;
    U  I673 :4;
    U  I674 :5;
    U  I883 :1;
    U  I884 :1;
    U  I885 :1;
    U  I886 :1;
    U  I887 :1;
    U  I888 :1;
    U  I889;
    U  I890;
    U  I203;
    U  I891;
    U  I892 :1;
    U  I893 :31;
    union {
        U  utable;
        U  edgeInputNum;
    } I699;
    U  I894 :4;
    U  I895 :4;
    U  I896 :4;
    U  I897 :4;
    U  I898 :4;
    U  I899 :4;
    U  I900 :1;
    U  I901 :1;
    U  I902 :1;
    U  I903 :1;
    U  I368 :5;
    HsimExprChar  * I904;
    UB  * I905;
    UB  * I906;
    struct _RmaMultiInputTable * I880;
    struct _RmaMultiInputTable * I908;
} RmaMultiInputTable;
typedef struct _HsCgPeriod {
    U  I954;
    U  I955;
} HsCgPeriod;
typedef struct {
    U   I956[2];
    U  I957 :1;
    U  I958 :1;
    U  I959 :8;
    U  I960 :8;
    U  I961 :8;
    U  I962 :4;
    U  I963 :1;
    U  I964 :1;
    unsigned long long I965;
    unsigned long long I966;
    unsigned long long I967;
    unsigned long long I968;
    unsigned long long I955;
    U  I954;
    U  I969;
    U  I970;
    U  I971;
    U  I972;
    U  I973;
    HsCgPeriod  * I974[10];
} HsimSignalMonitor;
typedef struct {
    FlatNodeNum  I975;
    InstNum  I976;
    U  I914;
    scalar  I977;
    UB  I978;
    UB  I979;
    UB  I980;
    UB  I981;
    UB  I982;
    UB  I983;
    U  I984;
    U  I985;
    U  I986;
    U  I987;
    U  I988;
    U  I989;
    U  I990;
    U  I991;
    U  I992;
    HsimSignalMonitor  * I993;
    RP  I994;
    RmaTimeStamp64  I995;
    U  I996;
    RmaTimeStamp64  I997;
    U  I998;
    UB  I999;
} HsimNodeRecord;
typedef RP  RCICODE;
typedef struct {
    RP  I1004;
    RP  I729;
} RmaIbfIp;
typedef struct {
    RP  I1004;
    RP  pcode;
} RmaIbfPcode;
typedef struct {
    RmaEblk  I726;
} RmaEvTriggeredOrSyncLoadCg;
typedef struct {
    RO  I877;
    RP  pcode;
} SchedGateFanout;
typedef struct {
    RO  I877;
    RP  pcode;
    U   I935[4];
} SchedSelectGateFanout;
typedef struct {
    RP  pcode;
    RmaEblklq  I726;
} SchedGateEblk;
typedef struct {
    RP  pcode;
    RmaEblklq  I726;
    UB  * I1005;
} SchedSelectGateEblk;
typedef struct {
    RP  I1006;
    RP  pfn;
    RP  pcode;
} RmaSeqPrimOutputEblkData;
typedef struct {
    RmaEblk  I726;
    RP  I1007;
} RmaAnySchedSampleSCg;
typedef struct {
    RmaEblk  I726;
    RP  I1005;
    RP  I1007;
    vec32  I1008;
} RmaAnySchedVCg;
typedef struct {
    RmaEblk  I726;
    RP  I1005;
    RP  I1007;
    vec32   I776[1];
} RmaAnySchedWCg;
typedef struct {
    RmaEblk  I726;
    RP  I1005;
    RP  I1007;
    scalar   I1009[1];
} RmaAnySchedECg;
typedef struct {
    U  I1010;
    U  I714;
    U  I914;
    U  I1011;
    RmaIbfIp  * I1012;
    EBLK  I726;
    void * val;
} RmaThreadSchedCompiledLoads;
typedef struct {
    U  I714;
    U  I722;
    RmaThreadSchedCompiledLoads  * I1013;
} RmaSchedCompileLoadsCg;
typedef struct {
    RP  I1014;
} RmaRootCbkCg;
typedef struct {
    RP  I1015;
} RmaRootForceCbkCg;
typedef struct {
    RmaEblk  I726;
    RP  I1016;
} RmaForceCbkJmpCg;
typedef struct {
    U  I5;
    U  I722 :31;
    U  I1017 :1;
    vec32  I808;
    U  I1018;
    RP  I1019;
    RP  I1020;
} RmaForceSelectorV;
typedef struct {
    U  I5;
    RmaIbfPcode  I1026;
} RmaNetTypeDriverGate;
typedef struct {
    U  I5;
    U  I668;
    RmaIbfPcode   I1026[1];
} RmaNetTypeScatterGate;
typedef struct {
    U  I5;
    RmaIbfPcode  I1026;
} RmaNetTypeGatherGate;
typedef struct {
    RmaIbfPcode  I1027;
    U  I1028 :3;
    U  I1029 :1;
    U  I1030 :1;
    U  I890 :16;
} RmaNbaGateOfn;
typedef struct {
    U  I5;
    NBS  I1031;
    RmaIbfPcode  I1027;
} RmaNbaGate1;
typedef struct {
    RP  ptable;
    RP  pfn;
    RP  pcode;
} Rma1InputGateFaninCgS;
typedef struct RmaSeqPrimOutputS_ RmaSeqPrimOutputOnClkS;
struct RmaSeqPrimOutputS_ {
    RP  pfn;
    RP  I1034;
    U  state;
    U  I1035;
    RP  I1036;
    U  I706;
    scalar  val;
};
typedef struct {
    U  I5;
    U  iinput;
    UB  I1038;
    RP  I1039;
} RmaCondOptLoad;
typedef struct {
    U  I5;
    U  iinput;
    UB  I1038;
    RP  I1039;
} RmaMacroStateUpdate;
typedef struct {
    U  I5;
    U  state;
    U  I1040;
    UB  I1038;
    U  * I1041;
} RmaMacroState;
typedef struct {
    U  iinput;
    RP  I1042;
} RmaMultiInputLogicGateCg;
typedef struct {
    U  iinput;
    RP  ptable;
    RP  I1042;
} RmaSeqPrimEdgeInputCg;
typedef struct {
    RmaEblk  I726;
    RP  pcode;
} RmaSched0GateCg;
typedef struct {
    RmaEblk  I726;
    RP  pcode;
    RP  pfn;
} RmaUdpDeltaGateCg;
typedef struct {
    RmaEblk  I726;
    RP  pcode;
    RP  pfn;
    scalar  I1043;
} RmaSchedDeltaGateCg;
typedef struct {
    UB  I1044;
    RP  I1045;
    RP  I1046;
} RmaPropNodeSeqLhsSCg;
typedef struct {
    RmaEblk  I726;
    RP  pcode;
    U  I914;
    U   I715[1];
} RmaBitEdgeEblk;
typedef struct {
    U  I5;
    RP  I807;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaGateDelay;
typedef struct {
    U  I5;
    RP  I807;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaGateBehavioralDelay;
typedef struct {
    U  I5;
    union {
        RP  I1289;
        RP  I1577;
        RP  I1591;
    } I781;
    RmaIbfPcode  I1027;
} RmaMPDelay;
typedef struct {
    U  I5;
    RmaPulse  I1047;
    RmaIbfPcode  I1027;
} RmaMPPulseHybridDelay;
typedef struct {
    U  I5;
    RmaIbfPcode  I1027;
    RmaMps  I1048;
} RmaMPHybridDelay;
typedef struct {
    U  I5;
    U  I1049;
    RmaIbfPcode  I1027;
    RmaEblk  I766;
} RmaMPHybridDelayPacked;
typedef struct {
    U  I5;
    RmaIbfPcode  I1027;
    RmaMpspNewCsdf  I1050;
} RmaMPPulseDelay;
typedef struct {
    U  I5;
    RmaMpsp  I1050;
    RmaIbfPcode  I1027;
} RmaMPPulseOptHybridDelay;
typedef struct _RmaBehavioralTransportDelay {
    U  I5;
    RP  I685;
    RmaTransEventHdr  I920;
    RP  I804;
    RmaIbfPcode  I1027;
} RmaBehavioralTransportDelayS;
typedef struct {
    U  I5;
    U  I685;
    RmaTransEventHdr  I920;
    RP  I804;
    RmaIbfPcode  I1027;
} RmaNtcTransDelay;
typedef struct {
    U  I5;
    U  I685;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaNtcTransMpwOptDelay;
typedef struct {
    U  I5;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaNtcTransZeroDelay;
typedef struct {
    U  I5;
    U  I1051;
    U  I1052;
    RmaTransEventHdr  I920;
    RP  I804;
    RmaIbfPcode  I1027;
} RmaNtcTransDelayRF;
typedef struct {
    U  I5;
    U  I1051;
    U  I1052;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaNtcTransMpwOptDelayRF;
typedef struct {
    U  I5;
    RP  I1053;
    RmaTransEventHdr  I920;
    RP  I804;
    RmaIbfPcode  I1027;
} RmaICTransDelay;
typedef struct {
    U  I5;
    RP  I1053;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaICTransMpwOptDelay;
typedef struct {
    U  I5;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaICTransZeroDelay;
typedef struct {
    U  I5;
    RP  I807;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaICSimpleDelay;
typedef struct {
    U  I5;
    union {
        RP  psimple;
        RP  I1577;
        RP  I1591;
    } I781;
    RmaIbfPcode  I1027;
} RmaICDelay;
typedef struct {
    U  I5;
    RP  I807;
    RmaEblk  I726;
    RmaIbfPcode  I1027;
} RmaPortDelay;
typedef struct {
    U  I890;
    RP  I1057;
} RmaRtlXEdgesLoad;
typedef struct {
    U  I5;
    RmaRtlXEdgesLoad   I1057[(5)];
} RmaRtlXEdgesHdr;
typedef struct {
    U  I5;
    US  I1058;
    US  I1059 :1;
    US  I368 :15;
    RP  I1060;
    RP  I1061;
    RP  I1062;
} RmaRtlEdgeBlockHdr;
typedef struct {
    RP  I1063;
    RP  I1064;
} RemoteDbsedLoad;
typedef struct {
    RmaEblk  I726;
    RP  I1065;
    RP  I1066;
    U  I1067 :16;
    U  I1068 :2;
    U  I1069 :2;
    U  I1070 :1;
    U  I1071 :8;
    U  I368 :3;
    U  I471;
    RP  I1072;
    RP   I811[(5)];
    RP   I813[(5)];
    US  I1073;
    US  I1074;
    RemoteDbsedLoad   I1075[1];
} RmaRtlEdgeBlock;
typedef struct TableAssign_ {
    struct TableAssign_ * I880;
    struct TableAssign_ * I798;
    U  I5;
    U  I1077 :1;
    U  I1078 :1;
    U  I1079 :2;
    U  I1080 :1;
    U  I706 :8;
    U  I1081 :1;
    U  I1082 :1;
    U  I1083 :1;
    U  I1084 :1;
    U  I1085 :1;
    U  I1086 :1;
    U  I368 :13;
    RP  ptable;
    RP  I1042;
} TableAssign;
typedef struct TableAssignLayoutOnClk_ {
    struct TableAssignLayoutOnClk_ * I880;
    struct TableAssignLayoutOnClk_ * I798;
    U  I5;
    U  I1077 :1;
    U  I1078 :1;
    U  I1079 :2;
    U  I1080 :1;
    U  I706 :8;
    U  I1081 :1;
    U  I1082 :1;
    U  I1083 :1;
    U  I1084 :1;
    U  I1085 :1;
    U  I1086 :1;
    U  I368 :13;
    RP  ptable;
    RmaSeqPrimOutputOnClkS  I1088;
    RmaEblk  I726;
} TableAssignLayoutOnClk;
typedef struct {
    U  state;
    U  I1089;
} RmaSeqPrimOutputOnClkOpt;
typedef struct TableAssignLayoutOnClkOpt_ {
    struct TableAssignLayoutOnClkOpt_ * I880;
    struct TableAssignLayoutOnClkOpt_ * I798;
    U  I1091;
    U  I1077 :1;
    U  I1078 :1;
    U  I1079 :2;
    U  I1080 :1;
    U  I706 :8;
    U  I1081 :1;
    U  I1082 :1;
    U  I1083 :1;
    U  I1084 :1;
    U  I1085 :1;
    U  I1086 :1;
    U  I368 :13;
    RmaSeqPrimOutputOnClkOpt  I1088;
    RmaSeqPrimOutputEblkData  I1092;
} TableAssignLayoutOnClkOpt;
typedef struct {
    U  I5;
    RP  I798;
    RP  I1093;
} RmaTableAssignList;
typedef struct {
    U  I5;
    RP  I798;
    RP  I1093;
    RP  I1094;
    RP  I1036;
    US  I706;
    UB  I977;
    UB  I1095;
    UB  I1096;
    UB  I772;
    RP   I1097[0];
} RmaThreadTableAssignList;
typedef struct {
    RP  I1094;
    RP  I1036;
    US  I706;
    UB  I977;
    UB  I1095;
    UB  I1096;
    UB  I772;
} RmaThreadTableHeader;
typedef struct {
    RP  I1063;
} RmaWakeupListCg;
typedef struct {
    RP  I1063;
} RmaWakeupArrayCg;
typedef struct {
    RP  I1063;
    RP  I1098;
} RmaPreCheckWakeupListCg;
typedef struct {
    RP  I1063;
    RP  I1098;
} RmaPreCheckWakeupArrayCg;
typedef struct {
    U  I1099;
    U  I706;
    RmaTimeStamp   I1100[1];
} RmaTsArray;
typedef struct {
    U  iinput;
    RP  I1101;
} RmaConditionsMdb;
typedef struct {
    RP  I1102;
    RP  I1103;
    U  I1104;
} RmaTcListHeader;
typedef struct {
    RP  I880;
    RP  I1105;
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
} RmaTcCoreSimple;
typedef struct {
    RP  I880;
    RP  I1105;
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1116;
} RmaTcCoreConditional;
typedef struct {
    RP  I880;
    RP  I1105;
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1116;
    RP  I1117;
} RmaTcCoreConditionalOpt;
typedef struct {
    RP  I880;
    RP  I1105;
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1117;
    RP  I1118;
    U  I1119;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtc;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
} RmaTcCoreSimpleNoList;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1034;
} RmaTcCoreSimpleNoListMdb;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1116;
} RmaTcCoreConditionalNoList;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1116;
    RP  I1117;
} RmaTcCoreConditionalOptNoList;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1117;
    RP  I1118;
    U  I1119;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtcNoList;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1117;
    RP  I1118;
    RP  I1034;
    U  I1119;
    RmaConditionsMdb   arr[1];
} RmaTcCoreConditionalMtcNoListMdb;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    RP  I1116;
    RP  I1034;
} RmaTcCoreConditionalNoListMdb;
typedef struct {
    RP  I1106;
    RP  I721;
    U  I1107;
    scalar  I890;
    scalar  I1108;
    US  I1109 :1;
    US  I1110 :1;
    US  I1111 :1;
    US  I1112 :1;
    US  I1113 :1;
    US  I1114 :1;
    US  I1115 :5;
    U  I1121;
    RP  I1122;
    RP  I1123;
    RP  I1116;
    RP  I1124;
    RP  I1125;
    RmaTimeStamp  I1126;
} RmaTcCoreNochange;
typedef struct {
    RP  I1127;
    RP  I880;
} RmaTcCoreNochangeList;
typedef struct {
    RP  I1101;
    RmaTimeStamp  I1128;
    scalar  I1129;
} RmaConditionalTSLoadNoList;
typedef struct {
    RP  I880;
    RP  I1101;
    RmaTimeStamp  I1128;
    scalar  I1129;
} RmaConditionalTSLoad;
typedef struct {
    RmaTimeStamp  I1128;
    scalar  I1129;
    US  I890;
    RP  I1117;
} RmaConditionalTSLoadOptNoList;
typedef struct {
    RP  I880;
    RmaTimeStamp  I1128;
    scalar  I1129;
    US  I890;
    RP  I1117;
} RmaConditionalTSLoadOpt;
typedef struct {
    RP  I1117;
    RP  I1130;
    U  I1119;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtcNoList;
typedef struct {
    RP  I1034;
    RP  I1117;
    RP  I1130;
    U  I1119;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtcNoListMdb;
typedef struct {
    RP  I880;
    RP  I1117;
    RP  I1130;
    U  I1119;
    RmaConditionsMdb   arr[1];
} RmaConditionalTSLoadMtc;
typedef struct {
    U  I1131;
    U  I1132;
    FlatNodeNum  I1003;
    U  I914;
    U  I1133;
    U  I1134;
    RmaIbfPcode  I1027;
    union {
        scalar  I1135;
        vec32  I1136;
        scalar  * I1137;
        vec32  * I1138;
    } val;
} RmaScanSwitchData;
typedef struct {
    RP  I880;
    RP  I798;
    RP  I1139;
} RmaDoublyLinkedListElem;
typedef struct {
    RP  I1140;
    U  I1141 :1;
    U  I1142 :1;
    U  I1143 :1;
    U  I1144 :4;
    U  I368 :25;
    U  I1145;
} RmaSwitchGateInCbkListInfo;
typedef struct {
    union {
        RmaDoublyLinkedListElem  I1639;
        RmaSwitchGateInCbkListInfo  I2;
    } I699;
    RmaIbfPcode  I1027;
} RmaSwitchGate;
typedef struct RmaNonEdgeLoadData1_ {
    US  I1146;
    scalar  val;
    scalar  I1147 :1;
    scalar  I1148 :1;
    scalar  I1149 :1;
    scalar  I1150 :1;
    scalar  I1151 :1;
    U  I1152;
    RP  I811;
    RP  I1153;
    RP  I1003;
    RP  I1154;
    RP  I1155;
} RmaNonEdgeLoadData1;
typedef struct RmaNonEdgeLoadHdr1_ {
    UB  I1147;
    UB  I1156;
    UB  I977;
    RmaNonEdgeLoadData1  * I1057;
    RmaNonEdgeLoadData1  * I798;
    void * I1157;
} RmaNonEdgeLoadHdr1;
typedef struct RmaNonEdgeLoadHdrPrl1_ {
    U  I1158;
    RP  I721;
} RmaNonEdgeLoadHdrPrl1;
typedef struct RmaChildClockProp_ {
    RP  I811;
    RP  I1159;
    RP  I1003;
    RP  pcode;
    scalar  val;
} RmaChildClockProp;
typedef struct RmaChildClockPropList1_ {
    RmaChildClockProp  * I1057;
    RmaChildClockProp  * I798;
} RmaChildClockPropList1;
typedef struct {
    U  I5;
    U  I1160;
} RmaHDLCosimDUTGate;
typedef struct {
    UB  I1161;
    UB  I1162 :1;
    UB  I1163 :1;
    UB  I1164 :1;
    UB  I1165 :1;
    UB  I368 :4;
    US  cedges;
} RmaMasterXpropLoadHdr;
typedef struct {
    UB  I1166;
    UB  I1167;
    UB  I1168;
    UB  I1169;
    U  cedges :30;
    U  I1163 :1;
    U  I1170 :1;
    U  I1171;
    U  I1172;
    RP  I1173;
    RP  I1174;
    RmaRtlEdgeBlockHdr  * I1175;
} RmaChildXpropLoadHdr;
struct clock_load {
    U  I181 :5;
    U  I182 :12;
    U  I183 :1;
    U  I184 :2;
    U  I185 :1;
    U  I186 :1;
    U  I187 :1;
    U  I188 :9;
    U  I189;
    U  I190;
    void (* pfn)(void * I192, char val);
};
typedef struct clock_data {
    U  I197 :1;
    U  I198 :1;
    U  I199 :1;
    U  I200 :1;
    U  I181 :5;
    U  I182 :12;
    U  I201 :6;
    U  I202 :1;
    U  I184 :2;
    U  I185 :1;
    U  I188 :1;
    U  I203;
    U  I204;
    U  I205;
    U  I189;
    U  I206;
    U  I207;
    U  I208;
    U  I209;
    U  I210;
} HdbsClockData;
struct clock_hiconn {
    U  I214;
    U  I215;
    U  I189;
    U  I184;
};
typedef struct _RmaDaiCg {
    RP  I1176;
    RP  I1177;
    U  I1178;
} RmaDaiCg;
typedef union _RmaCbkMemOptUnion {
    RP  I1176;
    RP  I1179;
    RP  I1180;
} RmaCbkMemOptUnion;
typedef struct _RmaDaiOptCg {
    RmaCbkMemOptUnion  I1181;
} RmaDaiOptCg;
struct futq_slot2 {
    U  I758;
    U   I759[32];
};
struct futq_slot1 {
    U  I755;
    struct futq_slot2  I756[32];
};
struct futq_info {
    scalar  * I750;
    U  I751;
    U  I752;
    struct futq_slot1  I753[32];
};
struct futq {
    struct futq * I740;
    struct futq * I742;
    RmaEblk  * I743;
    RmaEblk  * I744;
    U  I731;
    U  I1;
};
struct sched_table {
    struct futq * I745;
    struct futq I746;
    struct hash_bucket * I747;
    struct hash_bucket * I749;
};
struct dummyq_struct {
    clock_struct  I1182;
    EBLK  * I1183;
    EBLK  * I1184;
    EBLK  * I1185;
    struct futq * I1186;
    struct futq * I1187;
    struct futq * I1188;
    struct sched_table * I1189;
    struct futq_info * I1191;
    struct futq_info * I1193;
    U  I1194;
    U  I1195;
    U  I1196;
    U  I1197;
    U  I1198;
    U  I1199;
    U  I1200;
    struct millenium * I1201;
    EBLK  * I1203;
    EBLK  * I1204;
    EBLK  * I1205;
    EBLK  * I1206;
    EBLK  * I1207;
    EBLK  * I1208;
    EBLK  * I1209;
    EBLK  * I1210;
    EBLK  * I1211;
    EBLK  * I1212;
    EBLK  * I1213;
    EBLK  * I1214;
    EBLK  * I1215;
    EBLK  * I1216;
    EBLK  * I1217;
    EBLK  * I1218;
    EBLK  * I1219;
    EBLK  * I1220;
    MPS  * I1221;
    struct retain_t * I1222;
    EBLK  * I1223;
    EBLK  * I1224;
    EBLK  * I1225;
    EBLK  * I1226;
    EBLK  * I1227;
    EBLK  * I1228;
    EBLK  * I1229;
    EBLK  * I1230;
    EBLK  * I1231;
    EBLK  * I1232;
    EBLK  * I1233;
    EBLK  * I1234;
    EBLK  * I1235;
    EBLK  * I1236;
    EBLK  * I1237;
    EBLK  * I1238;
    EBLK  * I1239;
    EBLK  * I1240;
    EBLK  * I1241;
    EBLK  * I1242;
    EBLK  * I1243;
    EBLK  * I1244;
    EBLK  * I1245;
    EBLK  * I1246;
    EBLK  * I1247;
    EBLK  * I1248;
    EBLK  I1249;
    EBLK  * I1250;
    EBLK  * I1251;
    EBLK  * I1252;
    EBLK  * I1253;
    int I1254;
    int I1255;
    struct vcs_globals_t * I1256;
    clock_struct  I1257;
    unsigned long long I1258;
    EBLK  * I1259;
    EBLK  * I1260;
    void * I1261;
};
typedef void (* FP)(void *  , scalar   );
typedef void (* FP1)(void *  );
typedef void (* FPRAP)(void *  , vec32  *  , U   );
typedef U  (* FPU1)(void *  );
typedef void (* FPV)(void *  , UB  *  );
typedef void (* FPVU)(void *  , UB  *  , U   );
typedef void (* FPLSEL)(void *  , scalar   , U   );
typedef void (* FPLSELV)(void *  , vec32  *  , U   , U   );
typedef void (* FPFPV)(UB  *  , UB  *  , U   , U   , U   , U   , U   , UB  *  , U   );
typedef void (* FPFA)(UB  *  , UB  *  , U   , U   , U   , U   , U   , U   , UB  *  , U   );
typedef void (* FPRPV)(UB  *  , U   , U   , U   );
typedef void (* FPEVCDLSEL)(void *  , scalar   , U   , UB  *  );
typedef void (* FPEVCDLSELV)(void *  , vec32  *  , U   , U   , UB  *  );
typedef void (* FPNTYPE_L)(void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_H)(void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_LPAP)(void *  , void *  , void *  , U   , U   , UB  *  , UB  *  , U   );
typedef void (* FPNTYPE_HPAP)(void *  , void *  , void *  , U   , U   , UB  *  , UB  *  , UB  *  , UB  *  , U   );
typedef struct _lqueue {
    EBLK  * I727;
    EBLK  * I1262;
    int I1263;
    struct _lqueue * I769;
} Queue;
typedef struct {
    void * I1265;
    void * I1266;
    void * I1267[2];
    void * I1268;
} ClkLevel;
typedef struct {
    unsigned long long I1269;
    EBLK  I1170;
    U  I1270;
    U  I1271;
    union {
        void * pHeap;
        Queue  * pList;
    } I699;
    unsigned long long I1272;
    ClkLevel  I1273;
    Queue   I1274[1];
} Qhdr;
extern UB   Xvalchg[];
extern UB   X4val[];
extern UB   X3val[];
extern UB   X2val[];
extern UB   XcvtstrTR[];
extern UB   Xcvtstr[];
extern UB   Xbuf[];
extern UB   Xbitnot[];
extern UB   Xwor[];
extern UB   Xwand[];
extern U   Xbitnot4val[];
extern UB   globalTable1Input[];
extern __thread unsigned long long vcs_clocks;
extern UB   Xunion[];
extern U  fRTFrcRelCbk;
extern FP  txpFnPtr;
extern FP   rmaFunctionArray[];
extern UP   rmaFunctionRtlArray[];
extern FP   rmaFunctionLRArray[];
extern U  rmaFunctionCount;
extern U  rmaFunctionLRCount;
extern U  rmaFunctionLRDummyCount;
extern UP  rmaFunctionDummyEndPtr;
extern __thread UB  dummyScalar;
extern __thread UB  fScalarIsForced;
extern __thread UB  fScalarIsReleased;
extern U  fNotimingchecks;
extern U  fFsdbDumpOn;
extern RP  * iparr;
extern FP1  * rmaPostAnySchedFnPtr;
extern FP1  * rmaPostAnySchedFnSamplePtr;
extern FP1  * rmaPostAnySchedVFnPtr;
extern FP1  * rmaPostAnySchedWFnPtr;
extern FP1  * rmaPostAnySchedEFnPtr;
extern FP1  * rmaPostSchedUpdateClockStatusFnPtr;
extern FP1  * rmaPostSchedUpdateClockStatusNonCongruentFnPtr;
extern FP1  * rmaPostSchedUpdateEvTrigFnPtr;
extern FP1  * rmaSched0UpdateEvTrigFnPtr;
extern FP1  * rmaPostSchedRecoveryResetDbsFnPtr;
extern U  fGblDataOrTime0Prop;
extern UB   rmaEdgeStatusValArr[];
extern FP1  * propForceCbkSPostSchedCgFnPtr;
extern FP1  * propForceCbkMemoptSPostSchedCgFnPtr;
extern UB  * ptableGbl;
extern U  * vcs_ptableOffsetsGbl;
extern UB  * expandedClkValues;
extern __thread Qhdr  * lvlQueue;
extern __thread unsigned threadIndex;
extern int cPeblkThreads;
extern US   xedges[];
extern U  mhdl_delta_count;
extern U  ignoreSchedForScanOpt;
extern U  fignoreSchedForDeadComboCloud;
extern int fZeroUser;
extern U  fEveBusPullVal;
extern U  fEveBusPullFlag;
extern U  fFutEventPRL;
extern U  fParallelEBLK;
extern U  fBufferingEvent;
extern __thread UB  fNettypeIsForced;
extern __thread UB  fNettypeIsReleased;
extern EBLK  * peblkFutQ1Head;
extern EBLK  * peblkFutQ1Tail;
extern US  * edgeActionT;
extern unsigned long long * derivedClk;
extern U  fHashTableSize;
extern U  fSkipStrChangeOnDelay;
extern U  fHsimTcheckOpt;
extern scalar   edgeChangeLookUp[4][4];
extern U  fDoingTime0Prop;
extern U  fLoopDetectMode;
extern int gFLoopDectCodeEna;
extern U  fLoopReportRT;


extern void *mempcpy(void* s1, void* s2, unsigned n);
extern UB* rmaEvalDelays(UB* pcode, scalar val);
extern UB* rmaEvalDelaysV(UB* pcode, vec32* pval);
extern void rmaPopTransEvent(UB* pcode);
extern void rmaSetupFuncArray(UP* ra, U c, U w);
extern void rmaSetupRTLoopReportPtrs(UP* funcs, UP* rtlFuncs, U cnt, U cntDummy, UP end);
extern void SinitHsimPats(void);
extern void VVrpDaicb(void* ip, U nIndex);
extern int SDaicb(void *ip, U nIndex);
extern void SDaicbForHsimNoFlagScalar(void* pDaiCb, unsigned char value);
extern void SDaicbForHsimNoFlagStrengthScalar(void* pDaiCb, unsigned char value);
extern void SDaicbForHsimNoFlag(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimNoFlag2(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimWithFlag(void* pRmaDaiCg, unsigned char value);
extern void SDaicbForHsimNoFlagFrcRel(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx);
extern void SDaicbForHsimNoFlagFrcRel2(void* pRmaDaiCg, unsigned char reason, int msb, int lsb, int ndx);
extern void VcsHsimValueChangeCB(void* pRmaDaiCg, void* pValue, unsigned int valueFormat);
extern U isNonDesignNodeCallbackList(void* pRmaDaiCg);
extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptNoFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagScalar(void* pDaiCb, unsigned char value, unsigned char isStrength);
extern void VVrpNonEventNonRegdScalarForHsimOptCbkMemopt(void* ip, U nIndex);
extern void SDaicbForHsimCbkMemOptNoFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptWithFlagDynElabScalar(U* mem, unsigned char value, unsigned char isStrength);
extern void SDaicbForHsimCbkMemOptNoFlagDynElabFrcRel(U* mem, unsigned char reason, int msb, int lsb, int ndx);
extern void SDaicbForHsimCbkMemOptNoFlagFrcRel(void* pDaiCb, unsigned char reason, int msb, int lsb, int ndx);
extern void hsimDispatchCbkMemOptForVcd(RP p, U val);
extern void* hsimGetCbkMemOptCallback(RP p);
extern void hsimDispatchCbkMemOptNoDynElabS(RP* p, U val, U isStrength);
extern void* hsimGetCbkPtrNoDynElab(RP p);
extern void hsimDispatchCbkMemOptDynElabS(U** pvcdarr, U** pcbkarr, U val, U isScalForced, U isScalReleased, U isStrength);
extern void hsimDispatchCbkMemOptNoDynElabVector(RP* /*RmaDaiOptCg* */p, void* pval, U /*RmaValueType*/ vt, U cbits);
extern void copyAndPropRootCbkCgS(RmaRootCbkCg* pRootCbk, scalar val);
extern void copyAndPropRootCbkCgV(RmaRootCbkCg* rootCbk, vec32* pval);
extern void copyAndPropRootCbkCgW(RmaRootCbkCg* rootCbk, vec32* pval);
extern void copyAndPropRootCbkCgE(RmaRootCbkCg* rootCbk, scalar* pval);
extern void Wsvvar_callback_non_dynamic1(RP* ptr, int);
extern void rmaExecEvSyncList(RP plist);
extern void Wsvvar_callback_virt_intf(RP* ptr);
extern void Wsvvar_callback_hsim_var(RP* ptr);
extern void checkAndConvertVec32To2State(vec32* value, vec32* svalue, U cbits, U* pforcedBits);
extern unsigned int fGblDataOrTime0Prop;
extern void SchedSemiLerMP1(UB* pmps, U partId);
extern void SchedSemiLerMPO(UB* pmpso, U partId);
extern void rmaDummyPropagate(void);
extern RP rmaTestCg(RP pcode, U vt, UB* value);
extern void hsUpdateModpathTimeStamp(UB* pmps);
extern void doMpd32One(UB* pmps);
extern void doMpdCommon(MPS* pmps);
extern TimeStamp GET_DIFF_DELAY_FUNC(TimeStamp ts);
extern void SchedSemiLerMP(UB* ppulse, U partId);
extern EBLK *peblkFutQ1Head;
extern EBLK *peblkFutQ1Tail;
extern void scheduleuna(UB *e, U t);
extern void scheduleuna_mp(EBLK *e, unsigned t);
extern void schedule(UB *e, U t);
extern void sched_hsopt(struct dummyq_struct * pQ, EBLK *e, U t);
extern void sched_millenium(struct dummyq_struct * pQ, void *e, U thigh, U t);
extern void schedule_1(EBLK *e);
extern void sched0(UB *e);
extern void sched0Raptor(UB *e);
extern void sched0lq(EBLK *e);
extern void sched0lqnc(EBLK *e);
extern void sched0una(UB *e);
extern void sched0una_th(struct dummyq_struct *pq, UB *e);
extern void hsopt_sched0u_th(struct dummyq_struct *pq, UB *e);
extern void scheduleuna_mp_th(struct dummyq_struct *pq, EBLK *e, unsigned t);
extern void schedal(UB *e);
extern void sched0_th(struct dummyq_struct * pQ, EBLK *e);
extern void sched0u(UB *e);
extern void sched0u_th(struct dummyq_struct *pq, UB *e);
extern void sched0_hsim_front_th(struct dummyq_struct * pQ, UB *e);
extern void sched0_hsim_frontlq_th(struct dummyq_struct * pQ, UB *e);
extern void sched0lq_th(struct dummyq_struct * pQ, UB *e);
extern void schedal_th(struct dummyq_struct * pQ, UB *e);
extern void scheduleuna_th(struct dummyq_struct * pQ, void *e, U t);
extern void schedule_th(struct dummyq_struct * pQ, UB *e, U t);
extern void schedule_1_th(struct dummyq_struct * pQ, EBLK *peblk);
extern void SetupLER_th(struct dummyq_struct * pQ, EBLK *e);
extern void FsdbReportClkGlitch(UB*,U);
extern void AddToClkGLitchArray(EBLK*);
extern void SchedSemiLer_th(struct dummyq_struct * pQ, EBLK *e);
extern void SchedSemiLerTXP_th(struct dummyq_struct * pQ, EBLK *e);
extern void SchedSemiLerTXPFreeVar_th(struct dummyq_struct * pQ, EBLK *e);
extern U getVcdFlags(UB *ip);
extern void VVrpNonEventNonRegdScalarForHsimOpt(void* ip, U nIndex);
extern void VVrpNonEventNonRegdScalarForHsimOpt2(void* ip, U nIndex);
extern void SchedSemiLerTBReactiveRegion(struct eblk* peblk);
extern void SchedSemiLerTBReactiveRegion_th(struct eblk* peblk, U partId);
extern void SchedSemiLerTr(UB* peblk, U partId);
extern void SchedSemiLerNBA(UB* peblk, U partId);
extern void NBA_Semiler(void *ip, void *pNBS);
extern void sched0sd_hsim(UB* peblk);
extern void vcs_sched0sd_hsim_udpclk(UB* peblk);
extern void vcs_sched0sd_hsim_udpclkopt(UB* peblk);
extern void sched0sd_hsim_PRL(UB* peblk);
extern void sched0lq_parallel_clk(EBLK* peblk);
extern U    isRtlClockScheduled(EBLK* peblk);
extern void doFgpRaceCheck(UB* pcode, UB* p, U flag);
extern void doSanityLvlCheck();
extern void sched0lq_parallel_ova(EBLK* peblk);
extern void sched0lq_parallel_ova_precheck(EBLK* peblk);
extern void rmaDlpEvalSeqPrim(UB* peblk, UB val, UB preval);
extern void appendNtcEvent(UB* phdr, scalar s, U schedDelta);
extern void appendTransEventS(RmaTransEventHdr* phdr, scalar s, U schedDelta);
extern void schedRetainHsim(MPS* pMPS, scalar sv, scalar pv);
extern void updateRetainHsim(MPS* pMPS,scalar sv, scalar pv);
extern void hsimCountXEdges(void* record,  scalar s);
extern void hsimRegisterEdge(void* sm,  scalar s);
extern U pvcsGetPartId();
extern void HsimPVCSPartIdCheck(U instNo);
extern void debug_func(U partId, struct dummyq_struct* pQ, EBLK* EblkLastEventx); 
extern struct dummyq_struct* pvcsGetQ(U thid);
extern EBLK* pvcsGetLastEventEblk(U thid);
extern void insertTransEvent(RmaTransEventHdr* phdr, scalar s, scalar pv, scalar resval, U schedDelta, int re, UB* predd, U fpdd);
extern void insertNtcEventRF(RmaTransEventHdr* phdr, scalar s, scalar pv, scalar resval, U schedDelta, U* delays);
extern U doTimingViolation(RmaTimeStamp ts,RP* pdata, U fskew, U limit, U floaded, U fcondopt, RmaTimeStamp tsNochange);
extern void sched_gate_hsim(EBLK* peblk, unsigned t, RP* offset, U gd_info, U encodeInPcode, void* propValue);
extern int getCurSchedRegion();
extern FP getRoutPtr(RP, U);
extern U rmaChangeCheckAndUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits);
extern void rmaUpdateE(scalar* pvalDst, scalar* pvalSrc, U cbits);
extern U rmaChangeCheckAndUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaLhsPartSelUpdateE(scalar* pvalDst, scalar* pvalSrc, U index, U width);
extern void rmaUpdateWithForceSelectorE(scalar* pvalDst, scalar* pvalSrc, U cbits, U* pforceSelector);
extern void rmaUpdateWFromE(vec32* pvalDst, scalar* pvalSrc, U cbits);
extern U rmaLhsPartSelWithChangeCheckE(scalar* pvalDst, scalar* pvalSrc, U index, U width);
extern void rmaLhsPartSelWFromE(vec32* pvalDst, scalar* pvalSrc, U index,U width);
extern U rmaChangeCheckAndUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaUpdateW(vec32* pvalDst, vec32* pvalSrc, U cbits);
extern void rmaUpdateEFromW(scalar* pvalDst, vec32* pvalSrc, U cbits);
extern void *VCSCalloc(size_t size, size_t count);
extern void *VCSMalloc(size_t size);
extern void VCSFree(void *ptr);
extern U rmaLhsPartSelWithChangeCheckW(vec32* pvalDst, vec32* pvalSrc, U index,U width);
extern void rmaLhsPartSelEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width);
extern U rmaLhsPartSelWithChangeCheckEFromW(scalar* pvalDst, vec32* pvalSrc, U index,U width);
extern void rmaLhsPartSelUpdateW(vec32* pvalDst, vec32* pvalSrc, U index, U width);
extern void rmaEvalWunionW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalWorW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalWandW(vec32* dst, vec32* src, U cbits, U count);
extern void rmaEvalUnionE(scalar* dst, scalar* src, U cbits, U count, RP ptable);
typedef U RmaCgFunctionType;
extern RmaIbfPcode* rmaEvalPartSelectsW(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus);
extern RmaIbfPcode* rmaEvalPartSelectsWLe32(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus);
extern RmaIbfPcode* rmaEvalPartSelectsWToE(vec32* pvec32, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern RmaIbfPcode* rmaEvalPartSelectsEToE(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce, UB* pevcdStatus);
extern RmaIbfPcode* rmaEvalPartSelectsEToW(scalar* pv, U startIndex, U onWidth, U offWidth, U count, RmaIbfPcode* pibfPcode, U fnonRootForce);
extern U rmaEvalBitPosEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitNegEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitChangeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U VcsForceVecVCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U/*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecVCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecWCg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U/*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType, UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecWCg(UB* pcode, UB* pvDst, U fullcbits, U ibeginDst, U width, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecECg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U /*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType,UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsForceVecACg(UB* pcode, UB* pval, UB* pvDst, UB* pvCur, U fullcbits, U ibeginSrc, U ibeginDst, U width, U /*RmaValueConvType*/ convtype, U /*RmaForceType*/ frcType,UB* prhs, UB* prhsDst, U frhs, U* pforcedbits, U fisRoot);
extern U VcsReleaseVecCg(UB* pcode, UB* pvDst, U ibeginDst, U width, U /*RmaValueType*/ type,U fisRoot, UB* prhsDst, U frhs, U* pforcedbits);
extern U VcsDriveBitsAndDoChangeCheckV(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern U VcsDriveBitsAndDoChangeCheckW(vec32* pvSel, vec32* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern U VcsDriveBitsAndDoChangeCheckE(scalar* pvSel, scalar* pvCur, U fullcbits, U* pforcedbits, U isRoot);
extern void cgvecDebug_Eblk(UB* pcode);
extern U rmaCmpW(vec32* pvalDst, vec32* pvalSrc, U index, U width);
extern void copyVec32ArrMask(vec32* pv1, vec32* pv2, U len, U* mask);
extern void* memcpy(void*, const void*, size_t);
extern int memcmp(const void*, const void*, size_t);
extern void propagateScanOptPathVal(EBLK *peblk);
extern UB* rmaProcessScanSwitches(UB* pcode, scalar val);
extern UB* rmaProcessScanSwitchesV(UB* pcode, vec32 *pval);
extern UB* rmaProcessScanoptDump(UB* pcode, scalar val);
extern UB* rmaProcessScanoptDumpV(UB* pcode, vec32 *pval);
extern UB* rmaProcessScanChainOptSeqPrims(UB* pcode, scalar val);
extern void rmaProcessPvcsCcn(UB* pcode, scalar val);
extern void rmaProcessPvcsCcnE(UB* pcode, scalar* val);
extern void rmaProcessPvcsCcnW(UB* pcode, vec32* val);
extern void rmaProcessPvcsCcnV(UB* pcode, vec32* val);
extern void rmaProcessPvcsCcnCompiledS(UB* pcode, U offset, scalar ibnval);
extern void rmaProcessPvcsCcnCompiledV(UB* pcode, U offset, vec32* pval);
extern void schedResetRecoveryDbs(U cedges, EBLK* peblkFirst);
extern UB* rmaEvalUnaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpVOneFanoutCount(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpVLargeFanoutCount(UB* pcode, vec32* pval);
extern UB* rmaEvalAndOpVOneFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalAndOpVLargeFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalAndOpV(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpVOneFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpVLargeFanoutCount(UB* pcode, vec32* value);
extern UB* rmaEvalOrOpV(UB* pcode, vec32* value);
extern UB* rmaEvalTernaryOpV(UB* pcode, vec32* pval);
extern UB* rmaEvalUnaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalBinaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalTernaryOpW(UB* pcode, vec32* pval);
extern UB* rmaEvalUnaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalBinaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalTernaryOpE(UB* pcode, scalar* pv);
extern UB* rmaEvalTernaryOpS(UB* pcode, scalar val);
extern scalar rmaGetScalarFromWCg(vec32* pval, U index);
extern void rmaSetScalarInWCg(vec32* pval, U index, scalar s);
extern void rmaSetWInW(vec32* dst, vec32* src, U index, U indexSrc, U width);
extern void rmaCountRaptorBits(void* pval, void* pvalPrev, U cbits, U vt);
extern void setHsimFunc(void* ip);
extern void unsetHsimFunc(void* ip);
extern UB* getEvcdStatusByFlagsE(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits);
extern UB* getEvcdStatusByFlagsV(vec32* pvec32, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits);
extern UB* getEvcdStatusByFlagsW(vec32* pvec32, UB* pevcdTBDriverFlags, U cdrivers, UB* table, U cbits);
extern UB* getEvcdStatusByFlagsS(scalar* pscalar, UB* pevcdTBDriverFlags, U cdrivers, UB* table);
extern UB* getSingleDrvEvcdStatusS(UB value, U fTBDriver);
extern UB* getSingleDrvEvcdStatusE(scalar* pscalars, U fTBDriver, U cbits);
extern UB* getSingleDrvEvcdStatusV(scalar* pscalars, U fTBDriver, U cbits);
extern UB* getSingleDrvEvcdStatusW(scalar* pscalars, U fTBDriver, U cbits);
extern UB* getEvcdStatusByDrvEvcdStatus(UB* pdrvevcdStatus, U cdrivers, UB* table, U cbits);
extern void evcdCallback(UP pcode, U cbits);
extern UB* getSavedEvcdStatus(void);
extern void saveEvcdStatus(UB*);
extern void mhdlMarkExport(void*, U);
extern void levelInsertQueue(int);
extern void VcsRciRtl(RP pcode);
extern U fLoopDetectMode;
extern int gFLoopDectCodeEna;
extern U fLoopReportRT;
extern void rtSched0LoopDectDumpProcess(void* e, void* rtn, void* PQ);
extern void pushHsimRtnCtxt(void* pcode);
extern void popHsimRtnCtxt();
extern EBLK* loopReportInlinedSched0Wrapper(EBLK *peblk);
extern void loopReportSched0Wrapper(EBLK *peblk, unsigned int sfType, unsigned int fTH, struct dummyq_struct* pq);
extern void loopReportSchedSemiLerWrapper(EBLK *peblk, int sfType);
extern void CallGraphPushNodeAndAddToGraph(UP flatNode, UP instNum, U dummy);
extern void CallGraphPopNode(void);
extern RP elabGetIpTpl(U in);
extern U rmaEvalBitBothEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ1W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQXW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ0W(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval01EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval0XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval10EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEval1XEdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalX1EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalX0EdgeW(vec32* pvalCurr, vec32* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitPosEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitNegEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitBothEdgeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ1E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitEdgeQ0E(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern U rmaEvalBitChangeE(scalar* pvalCurr, scalar* pvalPrev, U cbits, U* pedges);
extern void rmaScheduleNbaGate(RP pcode, scalar val);
extern void rmaEvalRtlEdgeLoads(RmaRtlEdgeBlockHdr *phdr, US clkEdge, scalar clkVal, scalar prevClkVal, scalar val4,   scalar prevval4, scalar master4val);
extern void rmaEvaluateDynamicGateLoadsCg(RP p, scalar s);
extern void rmaEvaluateFusedWithDynamicGateLoadsCg(RP p, scalar s);
extern void rmaScheduleGatedClockEdgeLoadNew(UB* p, US* ea, U flags, UB* plist, UB* pprevlist, scalar v);
extern void rmaScheduleGatedClockEdgeLoad(UB* p, US* ea, U flags, UB* plist, UB* pprevlist, scalar v);
extern void rmaRemoveNonEdgeLoads(UB* pcode);
extern void rmaRecordEvents(HsimNodeRecord *pnr);
extern void handlePCBs(UB* p, U i);
extern void markMasterClkOvaLists(U fdbs, RP p);
extern void rmaChildClockPropAfterWrite(UB* p);
extern void rmaSchedChildClockPropAfterWrite(UB* p, UB* pmasterList, UB val);
extern void HDLCosimProcessDUTInputChange(U inputId, void* val);
extern void rmaChangeListForMovedGates(UB clkVal, UB f10Edge, UB* subMasterVal, UB* plist, RP* p, U count);
extern void rmaEvalSeqPrimLoadsByteArray(UB* pcode, UB val, UB prevval4);
extern void rmaEvalSeqPrimLoadsByteArrayX(UB* pcode, UB val, UB prevval4);
extern void vcsRmaEvalSeqPrimLoadsByteArraySCT(UB* pcode, UB val, UB prevval4, U c);
extern void vcsAbortForBadEBlk(void);
extern scalar edgeChangeLookUp[4][4];
extern void Wsvvar_sched_virt_intf_eval(RP* ptr);
extern void vcs_hwcosim_drive_dut_scalar(uint id, char val);
extern void vcs_hwcosim_drive_dut_vector_4state(uint id, vec32* val);
extern U vcs_rmaGetClkValForSeqUdpLayoutOnClkOpt(UB* poutput);
extern U rmaIsS2State(scalar s);
extern U rmaIsV2State(vec32* pval, U cbits);
extern U rmaIsW2State(vec32* pval, U cbits);
extern U rmaIsE2State(scalar* pval, U cbits);
extern void rmaUpdateRecordFor2State(HsimNodeRecord* record, U f2state);
typedef void (*FuncPtr)();
static inline U asm_bsf (U in)
{
#if defined(linux)
    U out;
#if !defined(__aarch64__)
    asm ("movl %1, %%eax; bsf %%eax, %%eax; movl %%eax, %0;"
        :"=r"(out)
        :"r"(in)
        :"%eax"
        );
#else
    out = ffs(in) - 1;
#endif
    return out;
#else
    return 0;
#endif
}


#ifdef __cplusplus
extern "C" {
#endif
void  hs_0_M_0_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_0_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_0_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_0_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_0_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_0_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_0_2__simv_daidir (UB  * pcode);
void  hs_0_M_0_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_2_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_2_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_8_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_8_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_8_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_8_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_8_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_8_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_8_2__simv_daidir (UB  * pcode);
void  hs_0_M_8_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_9_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_9_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_9_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_9_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_9_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_9_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_9_2__simv_daidir (UB  * pcode);
void  hs_0_M_9_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_12_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_12_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_14_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_14_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_14_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_14_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_14_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_14_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_14_2__simv_daidir (UB  * pcode);
void  hs_0_M_14_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_18_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_18_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_19_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_19_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_38_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_38_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_38_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_38_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_38_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_38_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_38_2__simv_daidir (UB  * pcode);
void  hs_0_M_38_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_39_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_39_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_39_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_39_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_39_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_39_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_39_2__simv_daidir (UB  * pcode);
void  hs_0_M_39_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_40_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_40_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_40_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_40_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_40_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_40_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_40_2__simv_daidir (UB  * pcode);
void  hs_0_M_40_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_41_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_41_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_41_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_41_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_41_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_41_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_41_2__simv_daidir (UB  * pcode);
void  hs_0_M_41_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_42_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_42_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_42_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_42_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_42_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_42_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_42_2__simv_daidir (UB  * pcode);
void  hs_0_M_42_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_42_9__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_42_9__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_43_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_43_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_43_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_43_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_43_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_43_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_43_2__simv_daidir (UB  * pcode);
void  hs_0_M_43_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_44_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_44_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_44_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_44_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_44_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_44_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_44_2__simv_daidir (UB  * pcode);
void  hs_0_M_44_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_45_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_45_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_46_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_46_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_47_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_47_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_47_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_47_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_47_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_47_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_47_2__simv_daidir (UB  * pcode);
void  hs_0_M_47_2__simv_daidir_core(UB  * pcode);
void  hs_0_M_48_21__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_48_21__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_48_0__simv_daidir (UB  * pcode, scalar  val);
void  hs_0_M_48_0__simv_daidir_core(UB  * pcode, scalar  val);
void  hs_0_M_48_1__simv_daidir (UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_48_1__simv_daidir_core(UB  * pcode, scalar  val, U  I677, scalar  * I1302, U  did);
void  hs_0_M_48_2__simv_daidir (UB  * pcode);
void  hs_0_M_48_2__simv_daidir_core(UB  * pcode);
void  hsG_0__0 (struct dummyq_struct * I1288, EBLK  * I1282, U  I685);
void  hsG_0__0_core(struct dummyq_struct * I1288, EBLK  * I1282, U  I685);
#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
  }
#endif
#endif /*__DO_RMAHDR_*/

